package com.yl.users.entity

import com.baomidou.mybatisplus.annotation.*
import com.yl.common.annotation.NoArg
import com.yl.common.getContext
import com.yl.users.pojo.dto.CompanyPermissionsDto
import java.util.*

/**
 *
 * create by 2021/5/14.
 * @author udbjqr
 */
@NoArg
@TableName("company_role")
data class CompanyRole(

    /**
     * 公司角色表
     */
    @TableId(value = "id", type = IdType.AUTO)
     var id: Long = 0,

    /**
     * 角色名称
     */
    @TableField(value = "role_name")
    var roleName: String,
    /**
     * 角色标识
     */
    @TableField("role_code")
    var roleCode: String? = null,

    /**
     * 所属公司id
     */
    @TableField("company_id")
    var companyId: Long = getContext().companyId,

    /**
     * 角色被操作类型（1，能删能改，2能改不能删，3不能有操作按钮）
     */
    @TableField("role_type")
    var roleType: Int? = null,

    /**
     * 创建用户id
     */
    @TableField("create_user_id")
    var createUserId: Long? = getContext().userId,

    /**
     * 创建时间
     */
    @TableField("create_time")
    var createTime: Date = Date(),

    /**
     * 权限id
     */
    @TableField(exist = false)
    var permissionsIds: List<Long>? = null,

    /**
     * 权限列表
     */
    @TableField(exist = false)
    var permissions: Collection<SysPermissions> = emptyList(),
    @TableField(exist = false)
    var permTree : List<CompanyPermissionsDto>?=null,

    @TableField(exist = false)
    var fieldIds : List<Long>?=null,

    @TableField(exist = false)
    var fieldTree : List<SysTableFieldPerm>?=null,


    @TableField(exist = false)
    val isCheck : Boolean? = null
)
